home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagd_f.zip / DOS.SWG / 0011_Another Warm-Cold BOOT.pas < prev    next >
Pascal/Delphi Source File  |  1993-06-22  |  2KB  |  57 lines

  1. ===========================================================================
  2.  BBS: Canada Remote Systems
  3. Date: 06-17-93 (20:44)             Number: 8849
  4. From: GREG VIGNEAULT               Refer#: NONE
  5.   To: KURT TAN                      Recvd: NO  
  6. Subj: WARM & COLD TP REBOOT...       Conf: (58) PASCAL
  7. ---------------------------------------------------------------------------
  8. KT> Can anybody tell me how to reboot with Turbo Pascal?
  9.  
  10.  Hi Kurt,
  11.  
  12.  You may find that using interrupt $19 doesn't work on many systems.
  13.  
  14.  The following cold and warm boot procedures should work under most
  15.  PC/MS-DOS environments.  It doesn't use either ASM or INLINE ...
  16.  
  17. (*******************************************************************)
  18. PROGRAM DemoReboot;             { force a Cold or Warm Reboot       }
  19.  
  20. USES    Crt,                    { import ClrScr, ReadKey            }
  21.         Dos;                    { import Intr(), Registers          }
  22.  
  23. PROCEDURE Reboot;               { <- only call from Cold & WarmBoot }
  24.     VAR     dummy : Registers;  { Intr() needs Register TYPE        }
  25.     BEGIN
  26.         MemW[0:0] := 0;         { modify an interrupt vector (eg.0) }
  27.         MemW[0:2] := $FFFF;     {  to point to $FFFF:$0000          }
  28.         Intr(0,dummy);          {   and force a call to it          }
  29.     END {Reboot};
  30.  
  31. PROCEDURE ColdBoot;             { like a system power-up or reset   }
  32.     BEGIN
  33.         MemW[0:$472] := $7F7F;  { tell the system it's a Cold boot  }
  34.         Reboot;                 { ...we don't return from here      }
  35.     END {ColdBoot};
  36.  
  37. PROCEDURE WarmBoot;             { same as Ctrl-Alt-Del reboot       }
  38.     BEGIN
  39.         MemW[0:$472] := $1234;  { tell the system it's a Warm boot  }
  40.         Reboot;                 { ...bye-bye                        }
  41.     END {WarmBoot};
  42.  
  43. BEGIN
  44.         ClrScr;
  45.         Write('Do you want a Warm or Cold reboot (W/C) ? ');
  46.         IF UpCase(ReadKey) = 'W' THEN WarmBoot ELSE ColdBoot;
  47.  
  48. END {DemoReboot}.
  49. (*******************************************************************)
  50.  
  51.  
  52.  Greg_
  53.  
  54.  Jun.17.1993.Toronto UUCP greg.vigneault@bville.gts.org FIDO 1:250/304
  55. ---
  56.  ■ RoseMail 2.10ß: NANET 41-62-24 Baudeville -Toronto ON - 416-283-0114
  57.